package model

import (
	"admin_srv/basic/config"
	"time"
)

type VipPlans struct { //会员套餐表
	Id          uint      `gorm:"column:id;type:int;primaryKey;not null;" json:"id"`
	PlanName    string    `gorm:"column:plan_name;type:varchar(50);comment:套餐名称;not null;" json:"plan_name"`    // 套餐名称
	PlanDays    uint      `gorm:"column:plan_days;type:int;comment:有效天数;not null;" json:"plan_days"`            // 有效天数
	Price       float64   `gorm:"column:price;type:decimal(10, 2);comment:价格;not null;" json:"price"`           // 价格
	Description string    `gorm:"column:description;type:text;comment:特权描述;" json:"description"`                // 特权描述
	IsAvailable uint      `gorm:"column:is_available;type:tinyint;comment:是否可用;default:1;" json:"is_available"` // 是否可用
	IsDeleted   uint      `gorm:"column:is_deleted;type:tinyint;comment:是否删除;default:0;" json:"is_deleted"`     // 是否删除
	CreateTime  time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP;" json:"create_time"`
}

func (v *VipPlans) TableName() string {
	return "vip_plans"
}
func (v *VipPlans) CreateVipPlan() error { //创建会员套餐
	return config.DB.Create(&v).Error
}
func (v *VipPlans) GetVipPlanList() ([]VipPlans, error) { //获取会员列表
	var plans []VipPlans
	err := config.DB.Find(&plans).Error
	return plans, err
}
func (v *VipPlans) GetVipPlanDetail(where *VipPlans) error { //获取会员套餐详情
	return config.DB.Where(where).Limit(config.Limit).Find(&v).Error
}
func (v *VipPlans) UpdateVipPlan(where *VipPlans) error { //更新会员套餐
	return config.DB.Model(&VipPlans{}).Where(where).Updates(&v).Error

}
func (v *VipPlans) DeleteVipPlan(where *VipPlans) error { //删除会员套餐
	return config.DB.Model(&VipPlans{}).Where(where).Update("is_deleted", 1).Error
}
func (v *VipPlans) EnaBleVipPlan(where *VipPlans) error { //启用会员
	return config.DB.Model(&VipPlans{}).Where(where).Update("is_available", 1).Error

}
func (v *VipPlans) DisableVipPlan(where *VipPlans) error { //禁用会员
	return config.DB.Model(&VipPlans{}).Where(where).Update("is_available", 0).Error
}
